<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::table('users', function (Blueprint $table) {
            // 使用Invisible Indexes优化查询性能而不影响现有应用
            $table->index(['status', 'last_login_at'])->invisible();
            $table->index(['created_at', 'status'])->invisible();

            // 添加复合索引用于复杂查询
            $table->index(['username', 'phone', 'status']);

            // 为JSON字段添加虚拟生成列（如果需要的话）
            // 这里可以根据实际需要添加JSON字段的虚拟列
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::table('users', function (Blueprint $table) {
            // 删除添加的字段和索引
            $table->dropColumn('account_age_days');

            // 删除invisible索引
            $table->dropIndex(['status', 'last_login_at']);
            $table->dropIndex(['created_at', 'status']);
            $table->dropIndex(['username', 'phone', 'status']);
        });
    }
};
